﻿using Abp.Application.Services;
using AVIS.OutBound.Orders.Dto;
using AVIS.OutBound.ThirdOrders.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;

namespace AVIS.OutBound.ThirdOrders
{
    /// <summary>
    /// 第三方订单的应用服务类，如：AA接机订单，游友订单（现在修改为漫游包Wifi订单）
    /// </summary>
    public interface IThirdOrderAppService : IApplicationService
    {
        /// <summary>
        /// 查询指定预订单ID的第三方增值服务接口
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        [HttpGet]
        List<ThirdProductDto> CarProductsByOrderId(OrderIdInput input);

        /// <summary>
        /// 获取指定订单号的第三方增值服务订单信息
        /// </summary>
        /// <param name="orderNo">Avis订单号</param>
        /// <returns></returns>
        [HttpGet]
        List<ThirdOrderDto> GetThirdOrders(string orderNo);

        /// <summary>
        /// 保存AA接机预订订单
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        bool SaveAAOrder(AAOrderInput input);

        /// <summary>
        /// 获取指定Avis订单号的AA接机预订单提交前信息
        /// </summary>
        /// <param name="orderNo">Avis订单号</param>
        /// <returns></returns>
        [HttpGet]
        AAOrderOutput GetAAOrderByOrderNo(string orderNo);

        /// <summary>
        /// 获取指定Avis订单号的游友订单提交前信息（现在修改为漫游包Wifi订单）
        /// </summary>
        /// <param name="orderNo">Avis订单号</param>
        /// <param name="productId">产品ID</param>
        /// <returns></returns>
        [HttpGet]
        YouYouOrderOutput GetYouYouOrderByOrderNo(string orderNo, string productId);

        /// <summary>
        /// 通过第三方接口获取游友订单信息（现在修改为漫游包Wifi订单）
        /// </summary>
        /// <param name="orderNo">Avis订单号</param>
        /// <returns></returns>
        [HttpGet]
        string GetYouYouOrder(string orderNo);

        /// <summary>
        /// 获取指定Avis订单号的AA接机订单详情
        /// </summary>
        /// <param name="orderNo">Avis订单号</param>
        /// <returns></returns>
        [HttpGet]
        AAOrderDetailOutput GetAAOrder(string orderNo);
    }
}
